package com.test21_常用类;

import org.junit.Test;

/**
 * System类
 */
public class Demo04_System {

    @Test
    public void test1() {
        String message = "www.yootk.com";
        long start = System.currentTimeMillis();
        for (int x = 0; x < 9999; x++) {
            message += x;
        }
        long end = System.currentTimeMillis();
        System.out.println("本次程序执行的耗时统计：" + (end - start));
    }

    /**
     * System.exit(0)：正常退出，程序正常执行结束退出
     * System.exit(1/非0)：非正常退出，就是说无论程序正在执行与否，都退出
     */
    @Test
    public void test2() {
        String[] args = {"www.yootk.com", "10"};
        if (args.length != 2) {
            System.out.println("【错误】本程序执行需要传递初始化的运行参数，否则无法运行！");
            System.out.println("【提示】可以按照如下的方式运行：java YootkDemo 字符串 重复次数");
            System.exit(1);     // 程序退出
        }
        String message = args[0];
        int count = Integer.parseInt(args[1]);
        for (int x = 0; x < count; x++) {
            System.out.println(message);
        }
    }

    @Test
    public void test3() {
        System.out.println("【1】垃圾产生前：FreeMemory = " + Runtime.getRuntime().freeMemory());
        String message = "www.yootk.com";
        for (int x = 0; x < 20; x++) {
            message += "\n" + message + x;
        }
        System.gc();    // 手工进行垃圾清除
        System.out.println("【2】GC调用后：FreeMemory = " + Runtime.getRuntime().freeMemory());
    }
}
